package com.briup.corejava.day17;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.Arrays;

/**
 * File类型的使用
 * File类：抽象的是计算机上文件或者目录的路径
 */
public class Test3 {
    public static void main(String[] args) throws IOException {
        File file = new File("/Users/mastercgx/Desktop");
        File f1 = new File(file,"a.txt");

        System.out.println(file.exists());
        System.out.println(f1.isFile());

        if(!f1.exists()){
            f1.createNewFile();
        }

        System.out.println(f1.getAbsolutePath());
        System.out.println(f1.getPath());
        System.out.println(f1.getCanonicalPath());

        // 获得目录下的所有文件的数组或者所有文件名字的数组
        String[] names = file.list();
        File[] files = file.listFiles();
        System.out.println(Arrays.toString(names));
        // length 文件长度
        System.out.println(f1.length());
        System.out.println(file.length());

        // 创建目录
        File f2 = new File(file,"test");
        f2.mkdir();
        // 创建多级目录
        File f3 = new File(file,"a/b/c");
        System.out.println(f3.mkdirs());
        // 删除操作

        // 根据文件过滤器获得指定目录下的文件
        File[] files1 = file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return pathname.isFile();
            }
        });
        for (File f : files1){
            System.out.println(f.getName());
        }
        // 获得桌面下所有文件的名字，如果是目录，进入之后继续查找
    }

}
